

class BONUS
{
    public:      
        double PPNopeusLisa;
        
    unsigned long ImeKuplaAika;
        double ImeKupla;
    unsigned long PuhallaKuplaAika;
        double PuhallaKupla;
        
    unsigned long KuplienTuloNopeusAika;
        double KuplienTuloNopeus;
        
        bool KuplatPuhki;

    unsigned long PuhaltajanNopeusMuutosAika;
        double PuhaltajanNopeusMuutos;
    
    char **Teksti;
    unsigned int Sanoja;
    unsigned long TekstiAika;
    double TekstiY;
    
    void Alusta();
    void Paivita();
    void Tyhjaa();
};


class PAPERPLANE
{
    public:
    char *Nimi;

    double Massa;
    double MassaKP;     //Z -akselilla
    double SiipiAla;
    double AeroDyn;

    double HeittoVoima; //vaikuttaa vain heitettäessä, yhden framen ajan

    VEKTORI KiihtyvyysV;
    VEKTORI NopeusV;
    
    double VasenPerasin, OikeaPerasin;

    OBJEKTI Objekti;
    
    VEKTORI ViimeV;
    
    void Alusta( char *TiedostoNimi );
    void PaivitaFysiikka( MAAILMA Maailma, BONUS &Bon );
};



void LataaPPt( PAPERPLANE *&PPPuskuri, int &PPLKM );


const unsigned int KUPLIENLKM = 1000;
class KUPLA
{
    public:
    
    OBJEKTI KuplaTyyppi[4];
    
    OBJEKTI Kup[KUPLIENLKM];
    unsigned char KupTyyppi[KUPLIENLKM];
    bool OnkoVapaa[KUPLIENLKM];
    double PyorNopeus[KUPLIENLKM][3];
    double NousuNopeus[KUPLIENLKM];
    
    int PuhkaistavaKuplaTyyppi;
    
    Mix_Chunk *Aani[5];
    
    void Alusta();
    long Paivita( PAPERPLANE &PP, GRAFIIKKA &GF, BONUS &Bon );
    void Puhalla( SIJAINTI PuhaltajanSij );
};

void PaivitaPuhaltaja( OBJEKTI &Puhaltaja, SIJAINTI &HaluttuSij, double &PuhaltajanNopeus, BONUS &Bon );


class LENTOTIEDOT
{
    public:
    unsigned long LahtoAika;
    unsigned long LentoAika;
    double MaxEtaisyys;
    double EtaisyysLahdosta;
    double Korkeus;
    double MaxKorkeus;
    
    unsigned long Pisteet;
    long PisteLisays;
    
    void Alusta();
    void Paivita( KUPLA Kup, PAPERPLANE PP);
};


const unsigned int PistesijojenLKM = 20;
class PISTEET
{
    public:
    unsigned long LentoKerrat;
    unsigned long LentoAika[PistesijojenLKM];
    long Pisteet[PistesijojenLKM];
    char Nimi[PistesijojenLKM][11];
    
    void Lataa( char *TiedostoNimi );
    void Tallenna( char *TiedostoNimi );
};




























